home *** CD-ROM | disk | FTP | other *** search
/ Micromanía 90 / CDMM_90_1.ISO / Cycling Manager 2 / CyclingManager2Demo.exe / Disk1 / data1.cab / Game / DataCM2 / MenuServer / Subscribe.cnc < prev    next >
Encoding:
Text File  |  2002-05-10  |  2.3 KB  |  88 lines

  1. // *** Subscribe/unsubscribe ***
  2. // there must be only database code and no networking
  3.  
  4.  
  5.  
  6. // Subscribe user
  7. func i32x fnDBSubscribeUser(szx szLogin, szx szPassword, i32x _iTeamID)
  8. {
  9.     var i32x iUserID,iManagerID;
  10.     
  11.     // Find unactive user in GAM_user
  12.     iUserID = Join_FindKeyFromIntData(g_stJoins.m_iUser_iActive,0);
  13.     if(iUserID>0)
  14.     {
  15.         // User is now active
  16.         Join_SetIntFromKey(g_stJoins.m_iUser_iActive,iUserID,1);
  17.         
  18.         // Set user data
  19.         Join_SetStringFromKey(g_stJoins.m_iUser_szLogin,iUserID,szLogin);
  20.         
  21.         // Set Team User ID (1 to 1 relation)
  22.         Join_SetIntFromKey(g_stJoins.m_iUser_iTeamId,iUserID,_iTeamID);    
  23.         Join_SetIntFromKey(g_stJoins.m_iTeam_iUserId,_iTeamID,iUserID);
  24.  
  25.         Join_SetStringFromKey( g_stJoins.m_iUser_szPassword, iUserID, szPassword);
  26.  
  27.         // num registered
  28.         Join_SetIntFromIndex(    g_stJoins.m_iGame_iNumRegistered, 0, Join_GetIntFromIndex( g_stJoins.m_iGame_iNumRegistered, 0 ) + 1);
  29.  
  30.         println("Successfull Subscription.");
  31.     }
  32.     else
  33.     {
  34.         println("Subscription is impossible : no user available");
  35.     }
  36.  
  37.     return iUserID;
  38. }
  39.  
  40.  
  41. // unsubscribe user
  42. func void fnDBUnsubscribeUser(i32x iUserID)
  43. {
  44.     var Net_Client pClient;
  45.     var i32x iTeamID;
  46.     var szx szLogin;
  47.     
  48.     // get User info
  49.     szLogin = Join_GetStringFromKey(g_stJoins.m_iUser_szLogin,iUserID);
  50.     iTeamID = Join_GetIntFromKey(g_stJoins.m_iUser_iTeamId,iUserID);        
  51.     
  52.     // User is no more active
  53.     Join_SetIntFromKey(g_stJoins.m_iUser_iActive,iUserID,0);
  54.     
  55.     // Raz user data
  56.     Join_SetStringFromKey(g_stJoins.m_iUser_szLogin,iUserID,"0");
  57.     
  58.     // Raz Team User ID (1 to 1 relation) this free the team
  59.     Join_SetIntFromKey(g_stJoins.m_iUser_iTeamId,iUserID,0);    
  60.     Join_SetIntFromKey(g_stJoins.m_iTeam_iUserId,iTeamID,0);
  61.  
  62.     // num registered
  63.     Join_SetIntFromIndex(    g_stJoins.m_iGame_iNumRegistered, 0, Join_GetIntFromIndex( g_stJoins.m_iGame_iNumRegistered, 0 ) - 1);
  64.         
  65.     println("Successfull Unsubscription.");
  66. }
  67.  
  68.  
  69.  
  70.  
  71. // unsubscribe all users
  72. func void fnDBUnsubscribeAll()
  73. {
  74.     var i32x i;
  75.     var i32x iNumUsers, iUserID;
  76.     i = 0;
  77.     iNumUsers = Join_GetNumRows(g_stJoins.m_iUser_iID);
  78.     while (i<iNumUsers)
  79.     {
  80.         if (Join_GetIntFromIndex(g_stJoins.m_iUser_iActive,i))
  81.         {
  82.             iUserID = Join_GetIntFromIndex(g_stJoins.m_iUser_iID, i);
  83.             fnDBUnsubscribeUser(iUserID);
  84.         }
  85.         i = i+1;
  86.     }
  87. }
  88.